// 插件作者 xiaotian2333
// 开源地址 https://github.com/xiaotian2333/DailyReport-plugin

import { xhby, rmrb, nfrb } from "../lib/main.js"
import { get_config } from "../lib/config.js"

const tips_msg = "获取中..."

/** 返回要发送的聊天记录
 * @param {string} img_data 包含图片信息的数组
 * @param {int} user_id 发送消息的用户ID
 * @returns {Promise<Array>} 返回一个包含图片信息的数组，每个元素包含图片的src属性、原文链接和标题
 */
async function main(img_data, user_id = 8000000) {
    let msgList = []

    // 将图片塞进聊天记录
    for (const item of img_data) {
        msgList.push({
            user_id: user_id,
            nickname: item.title,
            message: await segment.image(item.img)
        });
    }

    return msgList
}

export class dimtown extends plugin {
    constructor() {
        super({
            name: '日报',
            event: 'message',
            priority: 5000,
            rule: [
                {
                    reg: /^#?(新华)?日报$/,
                    fnc: 'xhby'
                },
                {
                    reg: /^#?(人民)?日报$/,
                    fnc: 'rmrb'
                },
                {
                    reg: /^#?(南方)?日报$/,
                    fnc: 'nfrb'
                },

                // 以下是测试指令
                {
                    reg: /^#(日报)(测试|test)/,
                    fnc: 'test',
                    permission: 'master'
                }
            ]
        })
    }

    async xhby(e) {
        e.reply(tips_msg, true, { recallMsg: 5 })
        const img_data = await xhby(get_config().html_url.xhby)
        e.reply(await Bot.makeForwardMsg(await main(img_data, e.user_id)))
        return true
    }

    async rmrb(e) {
        e.reply(tips_msg, true, { recallMsg: 5 })
        const img_data = await rmrb(get_config().html_url.rmrb)
        e.reply(await Bot.makeForwardMsg(await main(img_data, e.user_id)))
        return true
    }

    async nfrb(e) {
        e.reply(tips_msg, true, { recallMsg: 5 })
        const img_data = await nfrb(get_config().html_url.nfrb)
        e.reply(await Bot.makeForwardMsg(await main(img_data, e.user_id)))
        return true
    }

    // 这个是测试用的
    async test(e) {
        let msg = e.msg
        msg = msg.replace(/#(日报)(测试|test)/, '')
        logger.info(msg)
        const img_data = await xhby(msg)
        e.reply(await Bot.makeForwardMsg(await main(img_data, e.user_id)))
        return true
    }
}